﻿using System;
using System.Collections.Generic;
using System.Text;
using EnvDTE;
using DesignPatternToolkit.Core;

namespace DesignPatternToolkit.Wizard.Engine
{
	public class WizardConfiguration
	{
		private static WizardConfiguration _singleton;
		
		protected WizardConfiguration()
		{
			AvailablePatterns = new List<Type>();
		}

		public static WizardConfiguration Instance
		{
			get
			{
				if (_singleton == null)
				{
					_singleton = new WizardConfiguration();
				}
				return _singleton;
			}
		}

        /// <summary>
        /// Gets or sets the available patterns.
        /// </summary>
        /// <value>The available patterns.</value>
        public List<Type> AvailablePatterns { get; set; }

        /// <summary>
        /// Gets or sets the pattern builder to build.
        /// </summary>
        /// <value>The pattern builder.</value>
		public PatternBuilder PatternBuilder { get; set; }

		/// <summary>
		/// The name of the project in your solution to insert the generated classes in.
		/// </summary>
		public string ProjectName { get; set; }

		/// <summary>
		/// References the IDE that the wizard is running in!
		/// </summary>
		internal EnvDTE.DTE VisualStudioEnv { get; set; }
	}
}
